C++中的 |, |=,||=分别是什么意思?

来源:百度知道 编辑:UC知道 时间:2024/06/08 06:19:56
如题,另外还有,->这是什么意思?能否给出例子?

| 是指位运算“或”,比如说 1|0 当然是等于1,而0|0 等于0(具体可见真值表)。
a|=b;是指先将a与b进行或运算,再将结果赋给a,比如说a=0,b=1,a|b的结果就是1,将其赋给a,则经过这条语句后a的值为1.
||是逻辑运算“或”,这个或跟高中学的“或”意思就基本一样了。而所有?=(?代表一种运算)运算符,都是指先将等号两边的变量(等号右边可能是常量)进行?运算,再将结果赋给a。
->是成员选择符,下面是我帮你找的一点解释:
成员选择符“.”与“->”的区别主要是操作符前面变量的类型。如果变量是指针型,则操作符为“->”,如果是非指针变量应该使用“.”。
比如说一个类Time,我们分别定义一个此类的指针和对象。
Time *ptime=new Time;
Time time;
如果我们想访问这个类中的一个成员变量m_Hour(假设其为公共的),则两个不同类型的访问为:
ptime->m_Hour;
time.m_Hour;
当然,我们也可以用下面这种方式进行访问:
(*ptime).m_Hour;
希望通过这个例子,你能区分这两种操作符的区别。

说到这里,可能你觉得|,||很难区分,其实不然,看下面这个例子:
当01 | 10 后的结果为11(注意这里是二进制,或运算之类的运算都是对二进制的操作),而 01 || 10 后的结果是1,由于两个数都非零,所以结果当然为“真”。“真”可以用一个非零的数来表示。

上面三个C++里边都没有,也不能重载。
下面这个是指针访问。
假如p是指向a的一个指针。那么:
*p的作用和p->一个意思。

|是位或
|=是取位或后赋值,就好比+=一样
||=是取逻辑或后赋值
跟+=,-=,*=等一样,举一反三就行了。

->是结构指针或类指针访问成员变量。
如struct aa{ int b;};
struct aa *a;